@aura3d/cli 3.0.1 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/admission/artDirection.d.ts +28 -0
- package/dist/admission/artDirection.d.ts.map +1 -0
- package/dist/admission/artDirection.js +47 -0
- package/dist/admission/artDirection.js.map +1 -0
- package/dist/admission/audio.d.ts +19 -0
- package/dist/admission/audio.d.ts.map +1 -0
- package/dist/admission/audio.js +31 -0
- package/dist/admission/audio.js.map +1 -0
- package/dist/admission/builder-patterns.d.ts +25 -0
- package/dist/admission/builder-patterns.d.ts.map +1 -0
- package/dist/admission/builder-patterns.js +40 -0
- package/dist/admission/builder-patterns.js.map +1 -0
- package/dist/admission/gates.d.ts +136 -0
- package/dist/admission/gates.d.ts.map +1 -0
- package/dist/admission/gates.js +335 -0
- package/dist/admission/gates.js.map +1 -0
- package/dist/admission/glb.d.ts +64 -0
- package/dist/admission/glb.d.ts.map +1 -0
- package/dist/admission/glb.js +128 -0
- package/dist/admission/glb.js.map +1 -0
- package/dist/admission/index.d.ts +8 -0
- package/dist/admission/index.d.ts.map +1 -0
- package/dist/admission/index.js +8 -0
- package/dist/admission/index.js.map +1 -0
- package/dist/admission/profiles.d.ts +52 -0
- package/dist/admission/profiles.d.ts.map +1 -0
- package/dist/admission/profiles.js +91 -0
- package/dist/admission/profiles.js.map +1 -0
- package/dist/admission/qrFlags.d.ts +12 -0
- package/dist/admission/qrFlags.d.ts.map +1 -0
- package/dist/admission/qrFlags.js +48 -0
- package/dist/admission/qrFlags.js.map +1 -0
- package/dist/admission/routeGates.d.ts +36 -0
- package/dist/admission/routeGates.d.ts.map +1 -0
- package/dist/admission/routeGates.js +144 -0
- package/dist/admission/routeGates.js.map +1 -0
- package/dist/admission/texel.d.ts +50 -0
- package/dist/admission/texel.d.ts.map +1 -0
- package/dist/admission/texel.js +177 -0
- package/dist/admission/texel.js.map +1 -0
- package/dist/admission/textureStats.d.ts +45 -0
- package/dist/admission/textureStats.d.ts.map +1 -0
- package/dist/admission/textureStats.js +201 -0
- package/dist/admission/textureStats.js.map +1 -0
- package/dist/animation-asset-validator.d.ts +44 -0
- package/dist/animation-asset-validator.d.ts.map +1 -1
- package/dist/animation-asset-validator.js +80 -1
- package/dist/animation-asset-validator.js.map +1 -1
- package/dist/asset-core-types.d.ts +99 -4
- package/dist/asset-core-types.d.ts.map +1 -1
- package/dist/asset-inspection-types.d.ts +8 -0
- package/dist/asset-inspection-types.d.ts.map +1 -1
- package/dist/asset-manifest.d.ts +1 -0
- package/dist/asset-manifest.d.ts.map +1 -1
- package/dist/asset-manifest.js +13 -4
- package/dist/asset-manifest.js.map +1 -1
- package/dist/asset-route-typegen.d.ts +37 -0
- package/dist/asset-route-typegen.d.ts.map +1 -0
- package/dist/asset-route-typegen.js +179 -0
- package/dist/asset-route-typegen.js.map +1 -0
- package/dist/cli-help.d.ts +1 -1
- package/dist/cli-help.d.ts.map +1 -1
- package/dist/cli-help.js +9 -4
- package/dist/cli-help.js.map +1 -1
- package/dist/cli-options.d.ts +7 -0
- package/dist/cli-options.d.ts.map +1 -1
- package/dist/cli-options.js +33 -2
- package/dist/cli-options.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +126 -11
- package/dist/cli.js.map +1 -1
- package/dist/codemods/engine-entry-imports.d.ts +22 -0
- package/dist/codemods/engine-entry-imports.d.ts.map +1 -0
- package/dist/codemods/engine-entry-imports.js +159 -0
- package/dist/codemods/engine-entry-imports.js.map +1 -0
- package/dist/codemods/lean-imports.d.ts +40 -0
- package/dist/codemods/lean-imports.d.ts.map +1 -0
- package/dist/codemods/lean-imports.js +175 -0
- package/dist/codemods/lean-imports.js.map +1 -0
- package/dist/codemods/renderer-imports.d.ts +36 -0
- package/dist/codemods/renderer-imports.d.ts.map +1 -0
- package/dist/codemods/renderer-imports.js +364 -0
- package/dist/codemods/renderer-imports.js.map +1 -0
- package/dist/codemods/renderer-mode.d.ts +38 -0
- package/dist/codemods/renderer-mode.d.ts.map +1 -0
- package/dist/codemods/renderer-mode.js +130 -0
- package/dist/codemods/renderer-mode.js.map +1 -0
- package/dist/commands/prd01/index.d.ts +8 -0
- package/dist/commands/prd01/index.d.ts.map +1 -0
- package/dist/commands/prd01/index.js +39 -0
- package/dist/commands/prd01/index.js.map +1 -0
- package/dist/commands/prd02/environmentsBake.d.ts +6 -0
- package/dist/commands/prd02/environmentsBake.d.ts.map +1 -0
- package/dist/commands/prd02/environmentsBake.js +174 -0
- package/dist/commands/prd02/environmentsBake.js.map +1 -0
- package/dist/commands/prd02/index.d.ts +2 -0
- package/dist/commands/prd02/index.d.ts.map +1 -0
- package/dist/commands/prd02/index.js +26 -0
- package/dist/commands/prd02/index.js.map +1 -0
- package/dist/commands/prd02/migrateLighting.d.ts +17 -0
- package/dist/commands/prd02/migrateLighting.d.ts.map +1 -0
- package/dist/commands/prd02/migrateLighting.js +86 -0
- package/dist/commands/prd02/migrateLighting.js.map +1 -0
- package/dist/commands/prd02/migrateLightingSweep.d.ts +20 -0
- package/dist/commands/prd02/migrateLightingSweep.d.ts.map +1 -0
- package/dist/commands/prd02/migrateLightingSweep.js +105 -0
- package/dist/commands/prd02/migrateLightingSweep.js.map +1 -0
- package/dist/commands/prd03/index.d.ts +7 -0
- package/dist/commands/prd03/index.d.ts.map +1 -0
- package/dist/commands/prd03/index.js +9 -0
- package/dist/commands/prd03/index.js.map +1 -0
- package/dist/commands/prd04/index.d.ts +10 -0
- package/dist/commands/prd04/index.d.ts.map +1 -0
- package/dist/commands/prd04/index.js +10 -0
- package/dist/commands/prd04/index.js.map +1 -0
- package/dist/commands/prd04/modelTintReport.d.ts +16 -0
- package/dist/commands/prd04/modelTintReport.d.ts.map +1 -0
- package/dist/commands/prd04/modelTintReport.js +114 -0
- package/dist/commands/prd04/modelTintReport.js.map +1 -0
- package/dist/commands/prd04/pinEmissiveDefaults.d.ts +3 -0
- package/dist/commands/prd04/pinEmissiveDefaults.d.ts.map +1 -0
- package/dist/commands/prd04/pinEmissiveDefaults.js +36 -0
- package/dist/commands/prd04/pinEmissiveDefaults.js.map +1 -0
- package/dist/commands/prd05/admit.d.ts +54 -0
- package/dist/commands/prd05/admit.d.ts.map +1 -0
- package/dist/commands/prd05/admit.js +153 -0
- package/dist/commands/prd05/admit.js.map +1 -0
- package/dist/commands/prd05/codemods/assetsRouteModules.d.ts +3 -0
- package/dist/commands/prd05/codemods/assetsRouteModules.d.ts.map +1 -0
- package/dist/commands/prd05/codemods/assetsRouteModules.js +92 -0
- package/dist/commands/prd05/codemods/assetsRouteModules.js.map +1 -0
- package/dist/commands/prd05/index.d.ts +9 -0
- package/dist/commands/prd05/index.d.ts.map +1 -0
- package/dist/commands/prd05/index.js +171 -0
- package/dist/commands/prd05/index.js.map +1 -0
- package/dist/commands/prd05/library.d.ts +23 -0
- package/dist/commands/prd05/library.d.ts.map +1 -0
- package/dist/commands/prd05/library.js +245 -0
- package/dist/commands/prd05/library.js.map +1 -0
- package/dist/commands/prd05/lookdev.d.ts +14 -0
- package/dist/commands/prd05/lookdev.d.ts.map +1 -0
- package/dist/commands/prd05/lookdev.js +68 -0
- package/dist/commands/prd05/lookdev.js.map +1 -0
- package/dist/commands/prd05/optimize.d.ts +16 -0
- package/dist/commands/prd05/optimize.d.ts.map +1 -0
- package/dist/commands/prd05/optimize.js +55 -0
- package/dist/commands/prd05/optimize.js.map +1 -0
- package/dist/commands/prd05/prune.d.ts +26 -0
- package/dist/commands/prd05/prune.d.ts.map +1 -0
- package/dist/commands/prd05/prune.js +104 -0
- package/dist/commands/prd05/prune.js.map +1 -0
- package/dist/commands/prd05/review.d.ts +24 -0
- package/dist/commands/prd05/review.d.ts.map +1 -0
- package/dist/commands/prd05/review.js +40 -0
- package/dist/commands/prd05/review.js.map +1 -0
- package/dist/commands/prd06/index.d.ts +6 -0
- package/dist/commands/prd06/index.d.ts.map +1 -0
- package/dist/commands/prd06/index.js +86 -0
- package/dist/commands/prd06/index.js.map +1 -0
- package/dist/commands/prd06/inspectAnimationClips.d.ts +86 -0
- package/dist/commands/prd06/inspectAnimationClips.d.ts.map +1 -0
- package/dist/commands/prd06/inspectAnimationClips.js +168 -0
- package/dist/commands/prd06/inspectAnimationClips.js.map +1 -0
- package/dist/commands/prd06/validateHero.d.ts +18 -0
- package/dist/commands/prd06/validateHero.d.ts.map +1 -0
- package/dist/commands/prd06/validateHero.js +91 -0
- package/dist/commands/prd06/validateHero.js.map +1 -0
- package/dist/commands/prd07/codemods.d.ts +28 -0
- package/dist/commands/prd07/codemods.d.ts.map +1 -0
- package/dist/commands/prd07/codemods.js +155 -0
- package/dist/commands/prd07/codemods.js.map +1 -0
- package/dist/commands/prd07/index.d.ts +2 -0
- package/dist/commands/prd07/index.d.ts.map +1 -0
- package/dist/commands/prd07/index.js +151 -0
- package/dist/commands/prd07/index.js.map +1 -0
- package/dist/commands/prd08/feelLint.d.ts +13 -0
- package/dist/commands/prd08/feelLint.d.ts.map +1 -0
- package/dist/commands/prd08/feelLint.js +32 -0
- package/dist/commands/prd08/feelLint.js.map +1 -0
- package/dist/commands/prd08/index.d.ts +2 -0
- package/dist/commands/prd08/index.d.ts.map +1 -0
- package/dist/commands/prd08/index.js +16 -0
- package/dist/commands/prd08/index.js.map +1 -0
- package/dist/commands/prd08/motionReport.d.ts +94 -0
- package/dist/commands/prd08/motionReport.d.ts.map +1 -0
- package/dist/commands/prd08/motionReport.js +197 -0
- package/dist/commands/prd08/motionReport.js.map +1 -0
- package/dist/commands/prd09/codemods/audio-wrapper.d.ts +9 -0
- package/dist/commands/prd09/codemods/audio-wrapper.d.ts.map +1 -0
- package/dist/commands/prd09/codemods/audio-wrapper.js +30 -0
- package/dist/commands/prd09/codemods/audio-wrapper.js.map +1 -0
- package/dist/commands/prd09/codemods/capture-branches.d.ts +10 -0
- package/dist/commands/prd09/codemods/capture-branches.d.ts.map +1 -0
- package/dist/commands/prd09/codemods/capture-branches.js +54 -0
- package/dist/commands/prd09/codemods/capture-branches.js.map +1 -0
- package/dist/commands/prd09/codemods/evidence-globals.d.ts +8 -0
- package/dist/commands/prd09/codemods/evidence-globals.d.ts.map +1 -0
- package/dist/commands/prd09/codemods/evidence-globals.js +19 -0
- package/dist/commands/prd09/codemods/evidence-globals.js.map +1 -0
- package/dist/commands/prd09/codemods/perf-script.d.ts +8 -0
- package/dist/commands/prd09/codemods/perf-script.d.ts.map +1 -0
- package/dist/commands/prd09/codemods/perf-script.js +24 -0
- package/dist/commands/prd09/codemods/perf-script.js.map +1 -0
- package/dist/commands/prd09/index.d.ts +8 -0
- package/dist/commands/prd09/index.d.ts.map +1 -0
- package/dist/commands/prd09/index.js +19 -0
- package/dist/commands/prd09/index.js.map +1 -0
- package/dist/commands/prd09/perf-report.d.ts +56 -0
- package/dist/commands/prd09/perf-report.d.ts.map +1 -0
- package/dist/commands/prd09/perf-report.js +118 -0
- package/dist/commands/prd09/perf-report.js.map +1 -0
- package/dist/commands/prd09/sfx-admit.d.ts +18 -0
- package/dist/commands/prd09/sfx-admit.d.ts.map +1 -0
- package/dist/commands/prd09/sfx-admit.js +120 -0
- package/dist/commands/prd09/sfx-admit.js.map +1 -0
- package/dist/commands/prd10/index.d.ts +2 -0
- package/dist/commands/prd10/index.d.ts.map +1 -0
- package/dist/commands/prd10/index.js +109 -0
- package/dist/commands/prd10/index.js.map +1 -0
- package/dist/commands/prd11/batchOptout.d.ts +35 -0
- package/dist/commands/prd11/batchOptout.d.ts.map +1 -0
- package/dist/commands/prd11/batchOptout.js +155 -0
- package/dist/commands/prd11/batchOptout.js.map +1 -0
- package/dist/commands/prd11/index.d.ts +2 -0
- package/dist/commands/prd11/index.d.ts.map +1 -0
- package/dist/commands/prd11/index.js +13 -0
- package/dist/commands/prd11/index.js.map +1 -0
- package/dist/commands/prd11/perfGate.d.ts +15 -0
- package/dist/commands/prd11/perfGate.d.ts.map +1 -0
- package/dist/commands/prd11/perfGate.js +98 -0
- package/dist/commands/prd11/perfGate.js.map +1 -0
- package/dist/commands/prd13/index.d.ts +15 -0
- package/dist/commands/prd13/index.d.ts.map +1 -0
- package/dist/commands/prd13/index.js +26 -0
- package/dist/commands/prd13/index.js.map +1 -0
- package/dist/commands/prd13/run.d.ts +10 -0
- package/dist/commands/prd13/run.d.ts.map +1 -0
- package/dist/commands/prd13/run.js +29 -0
- package/dist/commands/prd13/run.js.map +1 -0
- package/dist/commands/prd14/index.d.ts +6 -0
- package/dist/commands/prd14/index.d.ts.map +1 -0
- package/dist/commands/prd14/index.js +6 -0
- package/dist/commands/prd14/index.js.map +1 -0
- package/dist/commands/prd15/index.d.ts +8 -0
- package/dist/commands/prd15/index.d.ts.map +1 -0
- package/dist/commands/prd15/index.js +152 -0
- package/dist/commands/prd15/index.js.map +1 -0
- package/dist/commands/registry.d.ts +19 -0
- package/dist/commands/registry.d.ts.map +1 -0
- package/dist/commands/registry.js +19 -0
- package/dist/commands/registry.js.map +1 -0
- package/dist/contracts/assetManifest.d.ts +80 -0
- package/dist/contracts/assetManifest.d.ts.map +1 -0
- package/dist/contracts/assetManifest.js +9 -0
- package/dist/contracts/assetManifest.js.map +1 -0
- package/dist/contracts/commands.d.ts +53 -0
- package/dist/contracts/commands.d.ts.map +1 -0
- package/dist/contracts/commands.js +37 -0
- package/dist/contracts/commands.js.map +1 -0
- package/dist/index.d.ts +17 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +271 -71
- package/dist/index.js.map +1 -1
- package/dist/library-manifest.d.ts +86 -0
- package/dist/library-manifest.d.ts.map +1 -0
- package/dist/library-manifest.js +95 -0
- package/dist/library-manifest.js.map +1 -0
- package/dist/look/capture.d.ts +51 -0
- package/dist/look/capture.d.ts.map +1 -0
- package/dist/look/capture.js +229 -0
- package/dist/look/capture.js.map +1 -0
- package/dist/look/judge.d.ts +24 -0
- package/dist/look/judge.d.ts.map +1 -0
- package/dist/look/judge.js +151 -0
- package/dist/look/judge.js.map +1 -0
- package/dist/look/lint-static.d.ts +45 -0
- package/dist/look/lint-static.d.ts.map +1 -0
- package/dist/look/lint-static.js +241 -0
- package/dist/look/lint-static.js.map +1 -0
- package/dist/look/rubric.d.ts +70 -0
- package/dist/look/rubric.d.ts.map +1 -0
- package/dist/look/rubric.js +169 -0
- package/dist/look/rubric.js.map +1 -0
- package/dist/meshy/import.d.ts +7 -1
- package/dist/meshy/import.d.ts.map +1 -1
- package/dist/meshy/import.js +80 -6
- package/dist/meshy/import.js.map +1 -1
- package/dist/migrate-three/CompatibilityWarnings.d.ts +6 -0
- package/dist/migrate-three/CompatibilityWarnings.d.ts.map +1 -0
- package/dist/migrate-three/CompatibilityWarnings.js +24 -0
- package/dist/migrate-three/CompatibilityWarnings.js.map +1 -0
- package/dist/migrate-three/ImportMap.d.ts +19 -0
- package/dist/migrate-three/ImportMap.d.ts.map +1 -0
- package/dist/migrate-three/ImportMap.js +35 -0
- package/dist/migrate-three/ImportMap.js.map +1 -0
- package/dist/migrate-three/R3fMigration.d.ts +32 -0
- package/dist/migrate-three/R3fMigration.d.ts.map +1 -0
- package/dist/migrate-three/R3fMigration.js +70 -0
- package/dist/migrate-three/R3fMigration.js.map +1 -0
- package/dist/migrate-three/ThreeToA3DAdapter.d.ts +8 -0
- package/dist/migrate-three/ThreeToA3DAdapter.d.ts.map +1 -0
- package/dist/migrate-three/ThreeToA3DAdapter.js +20 -0
- package/dist/migrate-three/ThreeToA3DAdapter.js.map +1 -0
- package/dist/migrate-three/emit.d.ts +21 -0
- package/dist/migrate-three/emit.d.ts.map +1 -0
- package/dist/migrate-three/emit.js +117 -0
- package/dist/migrate-three/emit.js.map +1 -0
- package/dist/migrate-three/mappings.d.ts +21 -0
- package/dist/migrate-three/mappings.d.ts.map +1 -0
- package/dist/migrate-three/mappings.js +42 -0
- package/dist/migrate-three/mappings.js.map +1 -0
- package/dist/migrate-three/parse.d.ts +20 -0
- package/dist/migrate-three/parse.d.ts.map +1 -0
- package/dist/migrate-three/parse.js +56 -0
- package/dist/migrate-three/parse.js.map +1 -0
- package/dist/migrate-three/report.d.ts +18 -0
- package/dist/migrate-three/report.d.ts.map +1 -0
- package/dist/migrate-three/report.js +16 -0
- package/dist/migrate-three/report.js.map +1 -0
- package/dist/pull-bridge/adapters.d.ts +1 -1
- package/dist/pull-bridge/adapters.d.ts.map +1 -1
- package/dist/pull-bridge/adapters.js +17 -4
- package/dist/pull-bridge/adapters.js.map +1 -1
- package/dist/pull-bridge/provenance.d.ts.map +1 -1
- package/dist/pull-bridge/provenance.js +3 -2
- package/dist/pull-bridge/provenance.js.map +1 -1
- package/dist/pull-bridge/pullable.d.ts.map +1 -1
- package/dist/pull-bridge/pullable.js +14 -3
- package/dist/pull-bridge/pullable.js.map +1 -1
- package/dist/pull-bridge/scoring.d.ts +36 -8
- package/dist/pull-bridge/scoring.d.ts.map +1 -1
- package/dist/pull-bridge/scoring.js +143 -47
- package/dist/pull-bridge/scoring.js.map +1 -1
- package/dist/pull-bridge/search.d.ts +2 -0
- package/dist/pull-bridge/search.d.ts.map +1 -1
- package/dist/pull-bridge/search.js +17 -10
- package/dist/pull-bridge/search.js.map +1 -1
- package/dist/pull-bridge.d.ts +2 -2
- package/dist/pull-bridge.d.ts.map +1 -1
- package/dist/pull-bridge.js +24 -8
- package/dist/pull-bridge.js.map +1 -1
- package/package.json +6 -3
- package/skills/agent-files/AGENTS.md +3 -0
- package/skills/aura3d-animation-studio/SKILL.md +153 -0
- package/skills/aura3d-animation-studio/references/shot-looks.md +26 -0
- package/skills/aura3d-art-direction/SKILL.md +84 -0
- package/skills/aura3d-art-direction/references/failure-gallery.md +64 -0
- package/skills/aura3d-art-direction/references/framing-and-shots.md +45 -0
- package/skills/aura3d-art-direction/references/look-recipes.md +32 -0
- package/skills/aura3d-art-direction/references/quality-bar.md +103 -0
- package/skills/aura3d-art-direction/references/reference-frames.md +82 -0
- package/skills/aura3d-assets/SKILL.md +132 -0
- package/skills/aura3d-assets/references/preview-under-look.md +26 -0
- package/skills/aura3d-browser-game/SKILL.md +127 -0
- package/skills/aura3d-browser-game/references/genre-looks.md +52 -0
- package/skills/aura3d-character-animation/SKILL.md +129 -0
- package/skills/aura3d-character-animation/references/stage-and-lighting.md +31 -0
- package/skills/aura3d-core/SKILL.md +121 -0
- package/skills/aura3d-core/references/boundaries.md +91 -0
- package/skills/aura3d-evidence-review/SKILL.md +106 -0
- package/skills/aura3d-game-art/SKILL.md +118 -0
- package/skills/aura3d-game-art/references/sheet-check.mjs +58 -0
- package/skills/aura3d-game-art/references/sprite-palettes.md +25 -0
- package/skills/aura3d-materials-environments/SKILL.md +139 -0
- package/skills/aura3d-performance/SKILL.md +97 -0
- package/skills/aura3d-retexture/SKILL.md +115 -0
- package/skills/aura3d-retexture/references/geometry-hash.mjs +89 -0
- package/skills/aura3d-scene-authoring/SKILL.md +132 -0
- package/skills/aura3d-scene-authoring/references/look-by-family.md +28 -0
- package/skills/aura3d-threejs-migration/SKILL.md +125 -0
- package/skills/aura3d-threejs-migration/references/look-mapping.md +27 -0
- package/skills/llms.txt +117 -0
- package/skills/manifest.json +163 -0
- package/skills/meshy-cli/SKILL.md +133 -0
package/README.md
CHANGED
|
@@ -62,7 +62,7 @@ so the rest of the app still uses `model(assets.helmet)`.
|
|
|
62
62
|
Meshy generation runs through the pinned official Meshy CLI. After a completed run is downloaded locally, admit a selected GLB through Aura3D:
|
|
63
63
|
|
|
64
64
|
```bash
|
|
65
|
-
npx @aura3d/cli@3.0.
|
|
65
|
+
npx @aura3d/cli@3.0.1 assets import-meshy artifacts/meshy/arena-relic/ \
|
|
66
66
|
--name arenaRelic \
|
|
67
67
|
--quality candidate \
|
|
68
68
|
--role prop \
|
|
@@ -80,7 +80,7 @@ See the [Meshy CLI guide](https://github.com/auraoneai/aura3d/blob/main/docs/mes
|
|
|
80
80
|
npx @aura3d/cli@latest assets add ./model.glb --name model
|
|
81
81
|
npx @aura3d/cli@latest assets search "studio robot" --json
|
|
82
82
|
npx @aura3d/cli@latest assets resolve "studio robot" --name robot
|
|
83
|
-
npx @aura3d/cli@3.0.
|
|
83
|
+
npx @aura3d/cli@3.0.1 assets import-meshy artifacts/meshy/arena-relic/ --name arenaRelic --quality candidate --role prop --profile prop --rights-evidence artifacts/meshy/arena-relic/rights.json
|
|
84
84
|
npx @aura3d/cli@latest assets inspect ./model.glb --animation --humanoid
|
|
85
85
|
npx @aura3d/cli@latest assets validate --source --release
|
|
86
86
|
npx @aura3d/cli@latest assets validate-game --profile fighting-character --asset fighter
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PRD-05 §6.4 G10 (Phase 0 slice) — `stylized-flat` art-direction resolution.
|
|
3
|
+
*
|
|
4
|
+
* `stylized-flat` is the only structured replacement for the deleted
|
|
5
|
+
* `suitabilityReason` regex waiver: an untextured release asset is accepted
|
|
6
|
+
* only when its `artDirection` id resolves to an `assets/art-direction/<id>.json`
|
|
7
|
+
* document declaring `shading: "stylized-flat"` AND the entry carries an
|
|
8
|
+
* approved look-dev record bound to its current hash.
|
|
9
|
+
*/
|
|
10
|
+
import type { AuraCliAssetEntry } from "../asset-core-types.js";
|
|
11
|
+
export interface ArtDirectionDocument {
|
|
12
|
+
readonly id: string;
|
|
13
|
+
readonly shading?: string;
|
|
14
|
+
readonly palette?: readonly string[];
|
|
15
|
+
readonly texelDensity?: number;
|
|
16
|
+
readonly referenceImages?: readonly string[];
|
|
17
|
+
readonly mix?: readonly string[];
|
|
18
|
+
}
|
|
19
|
+
/** Reads `assets/art-direction/<id>.json` under `projectDir`; undefined when absent/invalid. */
|
|
20
|
+
export declare function readArtDirectionDocument(projectDir: string, id: string | undefined): ArtDirectionDocument | undefined;
|
|
21
|
+
/** A look-dev record counts as approved when a reviewer verdict accepted the asset's current hash. */
|
|
22
|
+
export declare function hasApprovedLookDevRecord(entry: Pick<AuraCliAssetEntry, "hash" | "derived" | "lookDev">): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* The `stylized-flat` escape for G5/the untextured-release check: art-direction
|
|
25
|
+
* doc exists, declares `shading: "stylized-flat"`, and look-dev approved.
|
|
26
|
+
*/
|
|
27
|
+
export declare function hasStylizedFlatApproval(projectDir: string, entry: Pick<AuraCliAssetEntry, "hash" | "derived" | "lookDev" | "artDirection">): boolean;
|
|
28
|
+
//# sourceMappingURL=artDirection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artDirection.d.ts","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/admission/artDirection.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAA8B,MAAM,wBAAwB,CAAC;AAE5F,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC;AAED,gGAAgG;AAChG,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,oBAAoB,GAAG,SAAS,CAWrH;AAED,sGAAsG;AACtG,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC,GAAG,OAAO,CAKhH;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,cAAc,CAAC,GAAG,OAAO,CAIpJ"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PRD-05 §6.4 G10 (Phase 0 slice) — `stylized-flat` art-direction resolution.
|
|
3
|
+
*
|
|
4
|
+
* `stylized-flat` is the only structured replacement for the deleted
|
|
5
|
+
* `suitabilityReason` regex waiver: an untextured release asset is accepted
|
|
6
|
+
* only when its `artDirection` id resolves to an `assets/art-direction/<id>.json`
|
|
7
|
+
* document declaring `shading: "stylized-flat"` AND the entry carries an
|
|
8
|
+
* approved look-dev record bound to its current hash.
|
|
9
|
+
*/
|
|
10
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
11
|
+
import { resolve } from "node:path";
|
|
12
|
+
/** Reads `assets/art-direction/<id>.json` under `projectDir`; undefined when absent/invalid. */
|
|
13
|
+
export function readArtDirectionDocument(projectDir, id) {
|
|
14
|
+
if (!id || !/^[a-z0-9][a-z0-9-_]*$/i.test(id))
|
|
15
|
+
return undefined;
|
|
16
|
+
const file = resolve(projectDir, "assets", "art-direction", `${id}.json`);
|
|
17
|
+
if (!existsSync(file))
|
|
18
|
+
return undefined;
|
|
19
|
+
try {
|
|
20
|
+
const parsed = JSON.parse(readFileSync(file, "utf8"));
|
|
21
|
+
if (parsed === null || typeof parsed !== "object")
|
|
22
|
+
return undefined;
|
|
23
|
+
return { id, ...parsed };
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/** A look-dev record counts as approved when a reviewer verdict accepted the asset's current hash. */
|
|
30
|
+
export function hasApprovedLookDevRecord(entry) {
|
|
31
|
+
const record = entry.lookDev;
|
|
32
|
+
if (!record || record.reviews.length === 0)
|
|
33
|
+
return false;
|
|
34
|
+
const boundHash = record.derivedHash ?? entry.derived?.hash ?? entry.hash;
|
|
35
|
+
return record.reviews.some((review) => review.verdict === "accept") && boundHash === (entry.derived?.hash ?? entry.hash);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The `stylized-flat` escape for G5/the untextured-release check: art-direction
|
|
39
|
+
* doc exists, declares `shading: "stylized-flat"`, and look-dev approved.
|
|
40
|
+
*/
|
|
41
|
+
export function hasStylizedFlatApproval(projectDir, entry) {
|
|
42
|
+
const document = readArtDirectionDocument(projectDir, entry.artDirection);
|
|
43
|
+
if (document?.shading !== "stylized-flat")
|
|
44
|
+
return false;
|
|
45
|
+
return hasApprovedLookDevRecord(entry);
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=artDirection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artDirection.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/admission/artDirection.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,gGAAgG;AAChG,MAAM,UAAU,wBAAwB,CAAC,UAAkB,EAAE,EAAsB;IACjF,IAAI,CAAC,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,OAAO,SAAS,CAAC;IAChE,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC1E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/D,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACpE,OAAO,EAAE,EAAE,EAAE,GAAI,MAAkC,EAA0B,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,wBAAwB,CAAC,KAA8D;IACrG,MAAM,MAAM,GAAG,KAAK,CAAC,OAAiD,CAAC;IACvE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACzD,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC;IAC1E,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,IAAI,SAAS,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;AAC3H,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAAkB,EAAE,KAA+E;IACzI,MAAM,QAAQ,GAAG,wBAAwB,CAAC,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAC1E,IAAI,QAAQ,EAAE,OAAO,KAAK,eAAe;QAAE,OAAO,KAAK,CAAC;IACxD,OAAO,wBAAwB,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PRD-05 R-09-1 (request from lane 09) — synthesized-audio release rule.
|
|
3
|
+
*
|
|
4
|
+
* `assets validate --release` fails an `audio` entry whose provenance is
|
|
5
|
+
* synthesized unless its id is on `AUDIO_SYNTH_RELEASE_ALLOWLIST`. The
|
|
6
|
+
* allowlist starts empty: all 178 in-repo synthesized audio entries are
|
|
7
|
+
* `candidate`/`ungraded` today, so admitting one is a deliberate, auditable
|
|
8
|
+
* act (lane 09 owns the entries, lane 05 owns the rule).
|
|
9
|
+
*/
|
|
10
|
+
import type { AuraCliAssetProvenance } from "../asset-core-types.js";
|
|
11
|
+
/** Ids allowed to hold `quality: "release"` with synthesized provenance. */
|
|
12
|
+
export declare const AUDIO_SYNTH_RELEASE_ALLOWLIST: readonly string[];
|
|
13
|
+
/**
|
|
14
|
+
* Provenance counts as synthesized when its own fields say the bytes were
|
|
15
|
+
* generated in-repo — `author`/`sourceFamily`/`attribution`/`evidence`
|
|
16
|
+
* mentioning synthesis, or a builder-script source page.
|
|
17
|
+
*/
|
|
18
|
+
export declare function isSynthesizedAudioProvenance(provenance: Pick<AuraCliAssetProvenance, "author" | "sourceFamily" | "attribution" | "evidence" | "sourcePage"> | undefined): boolean;
|
|
19
|
+
//# sourceMappingURL=audio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/admission/audio.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,4EAA4E;AAC5E,eAAO,MAAM,6BAA6B,EAAE,SAAS,MAAM,EAAO,CAAC;AAEnE;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,IAAI,CAAC,sBAAsB,EAAE,QAAQ,GAAG,cAAc,GAAG,aAAa,GAAG,UAAU,GAAG,YAAY,CAAC,GAAG,SAAS,GAAG,OAAO,CAWjL"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PRD-05 R-09-1 (request from lane 09) — synthesized-audio release rule.
|
|
3
|
+
*
|
|
4
|
+
* `assets validate --release` fails an `audio` entry whose provenance is
|
|
5
|
+
* synthesized unless its id is on `AUDIO_SYNTH_RELEASE_ALLOWLIST`. The
|
|
6
|
+
* allowlist starts empty: all 178 in-repo synthesized audio entries are
|
|
7
|
+
* `candidate`/`ungraded` today, so admitting one is a deliberate, auditable
|
|
8
|
+
* act (lane 09 owns the entries, lane 05 owns the rule).
|
|
9
|
+
*/
|
|
10
|
+
/** Ids allowed to hold `quality: "release"` with synthesized provenance. */
|
|
11
|
+
export const AUDIO_SYNTH_RELEASE_ALLOWLIST = [];
|
|
12
|
+
/**
|
|
13
|
+
* Provenance counts as synthesized when its own fields say the bytes were
|
|
14
|
+
* generated in-repo — `author`/`sourceFamily`/`attribution`/`evidence`
|
|
15
|
+
* mentioning synthesis, or a builder-script source page.
|
|
16
|
+
*/
|
|
17
|
+
export function isSynthesizedAudioProvenance(provenance) {
|
|
18
|
+
if (!provenance)
|
|
19
|
+
return false;
|
|
20
|
+
const blob = [
|
|
21
|
+
provenance.author ?? "",
|
|
22
|
+
provenance.sourceFamily ?? "",
|
|
23
|
+
provenance.attribution ?? "",
|
|
24
|
+
provenance.sourcePage ?? "",
|
|
25
|
+
...(provenance.evidence ?? []),
|
|
26
|
+
].join("\n");
|
|
27
|
+
if (/(?:synthesi[sz]ed|synth\b|procedurally generated|deterministic(?:ally)? (?:synth|generated))/i.test(blob))
|
|
28
|
+
return true;
|
|
29
|
+
return /(^|\/)apps\/[^/]+\/scripts\/(?:build|blender-build|build-review|register)-[^/]*\.(?:mjs|ts|py)$/i.test(provenance.sourcePage ?? "");
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=audio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/admission/audio.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,4EAA4E;AAC5E,MAAM,CAAC,MAAM,6BAA6B,GAAsB,EAAE,CAAC;AAEnE;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAAC,UAA2H;IACtK,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAC9B,MAAM,IAAI,GAAG;QACX,UAAU,CAAC,MAAM,IAAI,EAAE;QACvB,UAAU,CAAC,YAAY,IAAI,EAAE;QAC7B,UAAU,CAAC,WAAW,IAAI,EAAE;QAC5B,UAAU,CAAC,UAAU,IAAI,EAAE;QAC3B,GAAG,CAAC,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC;KAC/B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,IAAI,+FAA+F,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5H,OAAO,kGAAkG,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;AAC9I,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PRD-05 §6.4 G5 — in-repo builder patterns. Assets whose provenance or glTF
|
|
3
|
+
* `asset.generator` matches the repo's scripted-geometry builders are
|
|
4
|
+
* programmer art: capped at `prototype` (role `proxy` allowed) unless they
|
|
5
|
+
* pass G2, G3, G6 and a G9 record with a named human reviewer.
|
|
6
|
+
*
|
|
7
|
+
* Sources:
|
|
8
|
+
* - script paths under `apps/<app>/scripts/` named
|
|
9
|
+
* `build-*.mjs|ts`, `build-*.py`, `blender-build-*.py`,
|
|
10
|
+
* `build-review-*.mjs`, `register-*.mjs` (60+ such scripts exist today).
|
|
11
|
+
* - generator strings emitted by those builders: "Deep Recovery procedural
|
|
12
|
+
* GLB synth", "modular family synth", "deterministic * builder".
|
|
13
|
+
*
|
|
14
|
+
* `tests/unit/aura3d-cli/admission-gates.test.ts` enumerates
|
|
15
|
+
* `git ls-files` over the builder-script glob and asserts every
|
|
16
|
+
* builder-script name still matches, so new builder scripts cannot slip
|
|
17
|
+
* past the pattern list.
|
|
18
|
+
*/
|
|
19
|
+
export declare const BUILDER_SOURCE_PATH_PATTERNS: readonly RegExp[];
|
|
20
|
+
export declare const BUILDER_GENERATOR_PATTERNS: readonly RegExp[];
|
|
21
|
+
/** True when the file name (basename or repo-relative path) is a builder script. */
|
|
22
|
+
export declare function isBuilderScriptPath(path: string | undefined): boolean;
|
|
23
|
+
/** True when a glTF `asset.generator` or provenance generation string is an in-repo builder. */
|
|
24
|
+
export declare function isBuilderGenerator(generator: string | undefined): boolean;
|
|
25
|
+
//# sourceMappingURL=builder-patterns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder-patterns.d.ts","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/admission/builder-patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,eAAO,MAAM,4BAA4B,EAAE,SAAS,MAAM,EAEzD,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,SAAS,MAAM,EAIvD,CAAC;AAEF,oFAAoF;AACpF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAIrE;AAED,gGAAgG;AAChG,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAGzE"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PRD-05 §6.4 G5 — in-repo builder patterns. Assets whose provenance or glTF
|
|
3
|
+
* `asset.generator` matches the repo's scripted-geometry builders are
|
|
4
|
+
* programmer art: capped at `prototype` (role `proxy` allowed) unless they
|
|
5
|
+
* pass G2, G3, G6 and a G9 record with a named human reviewer.
|
|
6
|
+
*
|
|
7
|
+
* Sources:
|
|
8
|
+
* - script paths under `apps/<app>/scripts/` named
|
|
9
|
+
* `build-*.mjs|ts`, `build-*.py`, `blender-build-*.py`,
|
|
10
|
+
* `build-review-*.mjs`, `register-*.mjs` (60+ such scripts exist today).
|
|
11
|
+
* - generator strings emitted by those builders: "Deep Recovery procedural
|
|
12
|
+
* GLB synth", "modular family synth", "deterministic * builder".
|
|
13
|
+
*
|
|
14
|
+
* `tests/unit/aura3d-cli/admission-gates.test.ts` enumerates
|
|
15
|
+
* `git ls-files` over the builder-script glob and asserts every
|
|
16
|
+
* builder-script name still matches, so new builder scripts cannot slip
|
|
17
|
+
* past the pattern list.
|
|
18
|
+
*/
|
|
19
|
+
export const BUILDER_SOURCE_PATH_PATTERNS = [
|
|
20
|
+
/(^|\/)apps\/[^/]+\/scripts\/(?:build|blender-build|build-review|register)-[^/]*\.(?:mjs|ts|py)$/i,
|
|
21
|
+
];
|
|
22
|
+
export const BUILDER_GENERATOR_PATTERNS = [
|
|
23
|
+
/deep recovery procedural glb synth/i,
|
|
24
|
+
/modular family synth/i,
|
|
25
|
+
/deterministic[^,;\n]*builder/i,
|
|
26
|
+
];
|
|
27
|
+
/** True when the file name (basename or repo-relative path) is a builder script. */
|
|
28
|
+
export function isBuilderScriptPath(path) {
|
|
29
|
+
if (!path)
|
|
30
|
+
return false;
|
|
31
|
+
const normalized = path.replace(/\\/g, "/");
|
|
32
|
+
return BUILDER_SOURCE_PATH_PATTERNS.some((pattern) => pattern.test(normalized));
|
|
33
|
+
}
|
|
34
|
+
/** True when a glTF `asset.generator` or provenance generation string is an in-repo builder. */
|
|
35
|
+
export function isBuilderGenerator(generator) {
|
|
36
|
+
if (!generator)
|
|
37
|
+
return false;
|
|
38
|
+
return BUILDER_GENERATOR_PATTERNS.some((pattern) => pattern.test(generator));
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=builder-patterns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder-patterns.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/admission/builder-patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAsB;IAC7D,kGAAkG;CACnG,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAsB;IAC3D,qCAAqC;IACrC,uBAAuB;IACvB,+BAA+B;CAChC,CAAC;AAEF,oFAAoF;AACpF,MAAM,UAAU,mBAAmB,CAAC,IAAwB;IAC1D,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC5C,OAAO,4BAA4B,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,kBAAkB,CAAC,SAA6B;IAC9D,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7B,OAAO,0BAA0B,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAC/E,CAAC"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PRD-05 §6.4 — visual-quality admission gates (Phase 0 slice).
|
|
3
|
+
*
|
|
4
|
+
* Pure functions over parsed glTF JSON + accessor counts. Implemented here:
|
|
5
|
+
* G1 (triangle band), G3 (PBR slot coverage), G4 (card ban), G5
|
|
6
|
+
* (programmer-art ban), G8 (tangents when normal-mapped), G11 (derived
|
|
7
|
+
* present). G2, G6, G7, G9, G10 landed in Phase 4 (`assets admit`) —
|
|
8
|
+
* measured-input gates, pure over the reports produced by admission/texel.ts
|
|
9
|
+
* and admission/textureStats.ts.
|
|
10
|
+
*
|
|
11
|
+
* "Rendered surface area" is approximated by primitive triangle counts —
|
|
12
|
+
* these functions intentionally take accessor counts, not vertex buffers, so
|
|
13
|
+
* they run on the JSON chunk alone.
|
|
14
|
+
*/
|
|
15
|
+
import type { AssetQualityCheck } from "../contracts/assetManifest.js";
|
|
16
|
+
import type { AuraCliAssetRole, AuraCliLookDevReview } from "../asset-core-types.js";
|
|
17
|
+
import type { ArtDirectionDocument } from "./artDirection.js";
|
|
18
|
+
import type { TexelDensityReport } from "./texel.js";
|
|
19
|
+
import type { TextureSanityReport } from "./textureStats.js";
|
|
20
|
+
import { type AdmissionProfile } from "./profiles.js";
|
|
21
|
+
export type AdmissionGateId = `G${1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11}`;
|
|
22
|
+
/** One mesh primitive reduced to what the gates read (accessor counts + attribute presence). */
|
|
23
|
+
export interface AdmissionPrimitive {
|
|
24
|
+
readonly triangleCount: number;
|
|
25
|
+
readonly materialIndex?: number;
|
|
26
|
+
readonly hasTexcoord0: boolean;
|
|
27
|
+
readonly hasTangent: boolean;
|
|
28
|
+
}
|
|
29
|
+
export interface AdmissionMaterial {
|
|
30
|
+
readonly name?: string;
|
|
31
|
+
readonly hasBaseColorTexture: boolean;
|
|
32
|
+
readonly hasNormalTexture: boolean;
|
|
33
|
+
readonly hasMetallicRoughnessTexture: boolean;
|
|
34
|
+
/** True when the material carries an occlusion texture (aoMap). */
|
|
35
|
+
readonly hasOcclusionTexture: boolean;
|
|
36
|
+
/** True when the material references no texture at all (factors only). */
|
|
37
|
+
readonly factorOnly: boolean;
|
|
38
|
+
/** KHR_materials_unlit. */
|
|
39
|
+
readonly unlit: boolean;
|
|
40
|
+
}
|
|
41
|
+
export interface AdmissionModel {
|
|
42
|
+
readonly generator?: string;
|
|
43
|
+
readonly primitives: readonly AdmissionPrimitive[];
|
|
44
|
+
readonly materials: readonly AdmissionMaterial[];
|
|
45
|
+
/** Any mesh bound to a skin. */
|
|
46
|
+
readonly skinned: boolean;
|
|
47
|
+
/** LOD0 triangle total across primitives. */
|
|
48
|
+
readonly totalTriangles: number;
|
|
49
|
+
/** World-space bounds from POSITION accessor min/max (if declared). */
|
|
50
|
+
readonly boundsSize?: readonly [number, number, number];
|
|
51
|
+
}
|
|
52
|
+
/** Manifest/provenance context a gate may read besides the geometry. */
|
|
53
|
+
export interface AdmissionEntryContext {
|
|
54
|
+
readonly id: string;
|
|
55
|
+
readonly role?: AuraCliAssetRole | string;
|
|
56
|
+
readonly quality?: string;
|
|
57
|
+
/** `provenance.sourcePath` (or the entry `source` when provenance is absent). */
|
|
58
|
+
readonly sourcePath?: string;
|
|
59
|
+
/** `provenance.generation.provider` / generator id recorded by the generator pipeline. */
|
|
60
|
+
readonly generationProvider?: string;
|
|
61
|
+
/** Entry already carries a `derived` record (or `derived.optimize === "not-needed"`). */
|
|
62
|
+
readonly derivedPresent?: boolean;
|
|
63
|
+
/** `artDirection` resolved to a `stylized-flat` doc with an approved look-dev record. */
|
|
64
|
+
readonly stylizedFlatApproved?: boolean;
|
|
65
|
+
/** Manifest `artDirection` id (G10: resolves to assets/art-direction/<id>.json). */
|
|
66
|
+
readonly artDirection?: string;
|
|
67
|
+
}
|
|
68
|
+
/** G1 — LOD0 triangles within [floor, ceiling] of the role profile (§6.2). */
|
|
69
|
+
export declare function gateG1TriangleBand(model: AdmissionModel, profile: AdmissionProfile | undefined): AssetQualityCheck;
|
|
70
|
+
/**
|
|
71
|
+
* G3 — PBR completeness: TEXCOORD_0 + base colour + normal + metallic-
|
|
72
|
+
* roughness on ≥ 90 % of rendered area (occlusion required on non-skinned
|
|
73
|
+
* meshes, optional on skinned). Roles outside the PBR-required list record
|
|
74
|
+
* `waived-by-role`.
|
|
75
|
+
*/
|
|
76
|
+
export declare function gateG3PbrCompleteness(model: AdmissionModel, role: AuraCliAssetRole | string | undefined, profile: AdmissionProfile | undefined, stylizedFlatApproved?: boolean): AssetQualityCheck;
|
|
77
|
+
/**
|
|
78
|
+
* G4 — card ban. Fails when LOD0 ≤ 12 triangles, `KHR_materials_unlit` on
|
|
79
|
+
* > 10 % of area, or bounds thinness ratio min/max < 0.02 with ≤ 4 triangles.
|
|
80
|
+
* `backdrop`/`debug`/`abstract` roles are exempt.
|
|
81
|
+
*/
|
|
82
|
+
export declare function gateG4CardBan(model: AdmissionModel, role: AuraCliAssetRole | string | undefined): AssetQualityCheck;
|
|
83
|
+
export interface GateG5Result extends AssetQualityCheck {
|
|
84
|
+
/** True when the failure is the in-repo builder provenance (role `proxy` cap). */
|
|
85
|
+
readonly builderProvenance?: boolean;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* G5 — programmer-art ban. Fails when > 10 % of area lacks TEXCOORD_0, when
|
|
89
|
+
* every material is factor-only without an approved stylized-flat art
|
|
90
|
+
* direction, or when provenance/generator matches the in-repo builder list.
|
|
91
|
+
*/
|
|
92
|
+
export declare function gateG5ProgrammerArt(model: AdmissionModel, entry: AdmissionEntryContext): GateG5Result;
|
|
93
|
+
/** G8 — every primitive whose material has a normal map must carry TANGENT. */
|
|
94
|
+
export declare function gateG8Tangents(model: AdmissionModel): AssetQualityCheck;
|
|
95
|
+
/** G11 — `release` requires a `derived` record (or `optimize: "not-needed"` with measurements). */
|
|
96
|
+
export declare function gateG11Derived(entry: AdmissionEntryContext): AssetQualityCheck;
|
|
97
|
+
/** Measured inputs for the Phase-4 gates; callers build these per entry. */
|
|
98
|
+
export interface AdmissionMeasured {
|
|
99
|
+
/** G2: texel-density report (admission/texel.ts) at the resolved camera, 1920×1080. */
|
|
100
|
+
readonly texelDensity?: TexelDensityReport;
|
|
101
|
+
/** G2: same report at the §6.4 mobile viewport 390×844. */
|
|
102
|
+
readonly texelDensityMobile?: TexelDensityReport;
|
|
103
|
+
/** G6: per-slot texture sanity (admission/textureStats.ts). */
|
|
104
|
+
readonly textureSanity?: TextureSanityReport;
|
|
105
|
+
/** G7: derived file bytes + GPU bytes + draw calls (High tier). */
|
|
106
|
+
readonly derivedFileBytes?: number;
|
|
107
|
+
readonly gpuBytesHigh?: number;
|
|
108
|
+
readonly drawCalls?: number;
|
|
109
|
+
/** G9: the entry's look-dev record (manifest `lookDev`) bound to current hash. */
|
|
110
|
+
readonly lookDev?: {
|
|
111
|
+
readonly derivedHash?: string;
|
|
112
|
+
readonly stageVersion?: string;
|
|
113
|
+
readonly reviews: readonly AuraCliLookDevReview[];
|
|
114
|
+
};
|
|
115
|
+
/** G9: Aura-adapter look-dev score (three-minus-Aura gap > 1.5 → renderer issue). */
|
|
116
|
+
readonly auraScore?: number;
|
|
117
|
+
/** G10: resolved `assets/art-direction/<id>.json` (undefined = file missing). */
|
|
118
|
+
readonly artDirectionDoc?: ArtDirectionDocument;
|
|
119
|
+
}
|
|
120
|
+
/** G2 — median-area-triangle texels/screen-pixel within [0.5, 4] at the role camera. */
|
|
121
|
+
export declare function gateG2TexelDensity(model: AdmissionModel, profile: AdmissionProfile | undefined, measured: AdmissionMeasured): AssetQualityCheck;
|
|
122
|
+
/** G6 — texture sanity on 256² decoded proxies. */
|
|
123
|
+
export declare function gateG6TextureSanity(profile: AdmissionProfile | undefined, measured: AdmissionMeasured): AssetQualityCheck;
|
|
124
|
+
/** G7 — derived file bytes + GPU bytes + draw calls within the §17.2 role budget. */
|
|
125
|
+
export declare function gateG7Budget(profile: AdmissionProfile | undefined, measured: AdmissionMeasured): AssetQualityCheck;
|
|
126
|
+
/** G9 — look-dev record: three-adapter score ≥ 6.5, no axis < 4, hero needs a named human; Aura gap > 1.5 is a renderer issue, not an asset failure. */
|
|
127
|
+
export interface GateG9Result extends AssetQualityCheck {
|
|
128
|
+
/** Set when Aura-minus-three gap > 1.5 — file a renderer issue (qr-ic-regression), not an asset failure. */
|
|
129
|
+
readonly rendererIssue?: boolean;
|
|
130
|
+
}
|
|
131
|
+
export declare function gateG9LookDev(entry: AdmissionEntryContext, profile: AdmissionProfile | undefined, measured: AdmissionMeasured): GateG9Result;
|
|
132
|
+
/** G10 — art-direction document exists; `stylized-flat` additionally needs UVs + human review. */
|
|
133
|
+
export declare function gateG10ArtDirection(model: AdmissionModel, entry: AdmissionEntryContext, measured: AdmissionMeasured): AssetQualityCheck;
|
|
134
|
+
/** Runs all admission gates; measured gates need `measured` inputs (Phase 4). */
|
|
135
|
+
export declare function runAdmissionGates(model: AdmissionModel, entry: AdmissionEntryContext, measured?: AdmissionMeasured): readonly AssetQualityCheck[];
|
|
136
|
+
//# sourceMappingURL=gates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gates.d.ts","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/admission/gates.ts"],"names":[],"mappings":"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"}
|